package abstract_interface_0915;
public class Test {
    public static void main(String[] args) {
//      Shape shape=new shape();错误
        Shape shape= new Tran();
//      USB usb=new USB() ;错误
        //接口向上转型为其实例化实现多态
        USB usb=new Mouse();
        usb.plugIn();
        usb.work();
        Bird bird=new Bird();
        Dog dog=new Dog();
        runTest(dog);
        runTest(bird);
        swimTest(dog);
        flyTest(bird);
    }


    //定义这个方法时，采用的都是接口参数，接受所有接口的子类
    //属于向上转型
    public static void runTest(IRun iRun){//不关心到底有哪些子类，只要这个子类实现了这个接口就传入到这个接口里

        iRun.run();
    }
    public static void flyTest(IFly iFly){//如果使用具体子类，就只能接受一种类型
        iFly.fly();
    }
    public static void swimTest(ISwim iSwim){//用父接口作为参数，是为了参数统一化
        iSwim.swim();
    }


}
